package cn.com.jinhao.provider.business.service;

import cn.com.jinhao.provider.business.entity.WorkOrderCanceled;

import java.util.List;
import java.util.Map;

/**
 * hotline-spring-cloud
 * <p>Description: 撤单服务接口类 </p>
 *
 * @author ShaneMew
 * @version 1.0
 * @date 2020/4/8
 * @since 2020-04-08
 */
public interface CancelWorkOrderService {
    /**
     * 根据部门编码查询需要审核的撤单列表
     * @param deptCode   部门编码
     * @param pageNo 每页的条数
     * @param pageSize 页数
     * @return  List
     */
    List<WorkOrderCanceled> queryAll(String deptCode, int pageNo, int pageSize);

    /**
     * 新增撤单信息
     * @param workOrderCanceled 撤单信息
     */
    void add(WorkOrderCanceled workOrderCanceled) throws Exception ;

    /**
     * 更新撤单信息
     * @param workOrderCanceled 撤单信息
     */
    void update(WorkOrderCanceled workOrderCanceled);

    /**
     * 撤单审核
     * @param workOrderCanceled 撤单信息
     */
    void audit(WorkOrderCanceled workOrderCanceled) throws Exception;

    /**
     * 查询历史撤单记录
     * @param dispatchCode 派单编码
     * @return 撤单历史数量
     */
    int queryHistoryCount(String dispatchCode);

    /**
     * 查询撤单详情
     * @param code  撤单编码
     * @return  撤单详情
     */
    WorkOrderCanceled detail(String code) throws Exception ;

    /**
     * 查询撤单历史列表
     * @param dispatchCode 派单编码
     * @param pageNo 每页的条数
     * @param pageSize 页数
     * @return 历史撤单记录
     */
    Map<String, Object> queryHistory(String dispatchCode, int pageNo, int pageSize);

    /**
     * 根据部门编码获取当前部门的撤单审核列表
     * @param deptCode 部门编码
     * @param pageNo 每页的条数
     * @param pageSize 页数
     * @return List
     */
    Map<String,Object> listAuditByCancel(String deptCode, int pageNo, int pageSize) throws Exception;
}
